package com.syni.mdd.sjb.common.component.mybatis.community.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 数据宝企业微信群聊-成员信息关联表
 *
 * @author wangbaitao
 * @Date 2021-02-22
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SjbQywxChatGroupRef implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键Id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 客户群ID
     */
    private String chatId;
    /**
     * 群成员id
     */
    private String userid;
    /**
     * 成员类型。1 - 企业成员。2 - 外部联系人
     */
    private String type;
    /**
     * 外部联系人在微信开放平台的唯一身份标识（微信unionid），
     * 通过此字段企业可将外部联系人与公众号/小程序用户关联起来。仅当群成员类型是微信用户（包括企业成员未添加好友），
     * 且企业或第三方服务商绑定了微信开发者ID有此字段
     */
    private String unionid;
    /**
     * 入群时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime joinTime;
    /**
     * 入群方式。1 - 由成员邀请入群（直接邀请入群）2 - 由成员邀请入群（通过邀请链接入群）3 - 通过扫描群二维码入群
     */
    private String joinScene;
    /**
     * 同步时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime syncTime;
    /**
     * 在群状态：0-在群，1-离群
     */
    private Boolean status;
    /**
     * 企业id
     */
    private String corpid;
    /**
     * 同步状态：已同步=true
     */
    @TableField(exist = false)
    private Boolean isSync = false;
    /**
     * 社群详情页的客户类型：0-群主，1-企业成员，2-微信用户，3-企业微信用户
     */
    @TableField(exist = false)
    private String userType;
    /**
     * 名称
     */
    @TableField(exist = false)
    private String name;

    public static final String ID = "id";
    public static final String CHAT_ID = "chat_id";
    public static final String USER_ID = "userid";
    public static final String TYPE = "type";
    public static final String UNION_ID = "unionid";
    public static final String JOIN_TIME = "join_time";
    public static final String JOIN_SCENE = "join_scene";
    public static final String SYNC_TIME = "sync_time";
    public static final String STATUS = "status";
    public static final String CORP_ID = "corpid";
}